package com.easylinkin.linkappapi.taskscheduler.entity;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 *
 * @author TongJie
 * @since 2020-06-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("linkapp_job_entity")
public class JobEntity extends Model<JobEntity> {

    /**
     * id 主键
     */
    @TableId
    @ApiModelProperty(value = "主键", example = "")
    private String id;

    /**
     * 任务名称
     */
    @TableField("job_name")
    @ApiModelProperty(value = "任务名称", example = "")
    private String jobName;

    /**
     * 任务分组
     */
    @TableField("job_group")
    @ApiModelProperty(value = "任务分组", example = "")
    private String jobGroup;

    /**
     * 任务状态， 0禁用 1启用
     */
    @TableField("job_status")
    @ApiModelProperty(value = "任务状态", example = "")
    private String jobStatus;

    /**
     * 任务cron表达式
     */
    @TableField("cron_expression")
    @ApiModelProperty(value = "任务cron表达式", example = "")
    private String cronExpression;

    /**
     * 任务描述
     */
    @TableField("remark")
    @ApiModelProperty(value = "任务描述", example = "")
    private String remark;

    /**
     * 任务调度类型，0：接口，1：存储过程
     */
    @TableField("job_task_type")
    @ApiModelProperty(value = "任务调度类型", example = "")
    private String jobTaskType;

    /**
     * 接口地址
     */
    @TableField("api_url")
    @ApiModelProperty(value = "接口地址", example = "")
    private String apiUrl;

    /**
     * 参数
     */
    @TableField("params")
    @ApiModelProperty(value = "参数", example = "")
    private String params;

    /**
     * 任务类型，0：周期性，1：一次性
     */
    @TableField("job_type")
    @ApiModelProperty(value = "任务类型", example = "")
    private String jobType;

    /**
     * 触发器名字
     */
    @TableField("trigger_name")
    @ApiModelProperty(value = "触发器名字", example = "")
    private String triggerName;

    /**
     * 触发器分组
     */
    @TableField("trigger_group")
    @ApiModelProperty(value = "触发器分组", example = "")
    private String triggerGroup;

    /**
     * 是否立即运行，0：否，1：是
     */
    @TableField("is_now_run")
    @ApiModelProperty(value = "是否立即运行", example = "0")
    private String isNowRun;

    /**
     * 生效日期
     */
    @TableField("start_date")
    @ApiModelProperty(value = "生效日期", example = "")
    private Date startDate;

    /**
     * 失效日期
     */
    @TableField("end_date")
    @ApiModelProperty(value = "失效日期", example = "")
    private Date endDate;

    /**
     * 执行类名
     */
    @TableField("job_class_name")
    @ApiModelProperty(value = "执行类名", example = "")
    private String jobClassName;

    /**
     * 任务创建时间
     */
    @TableField("create_time")
    @ApiModelProperty(value = "任务创建时间", example = "")
    private Date createTime;

    /**
     * 任务更新时间
     */
    @TableField("modify_time")
    @ApiModelProperty(value = "任务更新时间", example = "")
    private Date modifyTime;

    /**
     * 是否删除字段 0:已删; 1:存在
     */
    @TableLogic(value = "1", delval = "0")
    @ApiModelProperty(value = "是否删除字段", example = "1")
    private Integer deleteState = 1;


    @Override
    protected Serializable pkVal() {
        return null;
    }

}
